]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
Specify API versions for all public GIR APIs, except GLib
authorSimon McVittie <smcv@debian.org>
Mon, 4 Apr 2022 10:26:43 +0000 (11:26 +0100)
committerSimon McVittie <smcv@debian.org>
Mon, 4 Apr 2022 16:55:25 +0000 (17:55 +0100)
If one of these libraries breaks its GIR API in future, then upgrading
packages unrelated to gnome-shell might pull in the newer version,
causing gnome-shell to crash when it gets a newer GIR API that is
incompatible with its expectations. For example, this seems to be
happening in Debian testing at the moment, when GNOME Shell 41.4
imports GWeather and can get version 4.0 instead of the version 3.0 that
it expected.

Adding explicit API versions at the time the newer version is released
is too late, because that will still let the newer version of the GIR API
break pre-existing GNOME Shell packages. Prevent similar crashes in
future by making the desired versions explicit.

This is done for all third-party libraries except GLib, similar to the
common practice in Python code; if GLib breaks API, then that will be
a disruptive change to the whole GLib/GObject ecosystem, regardless.

Gvc, Meta, Shell, Shew, St are not included because they're private
(only exist in a non-default search path entry).

Clutter and Cogl *are* included, because we need to import the fork of
them that comes with Meta, as opposed to their deprecated standalone
versions.

Signed-off-by: Simon McVittie <smcv@debian.org>
Bug-Debian: https://bugs.debian.org/1008926
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2261>

js/dbusServices/extensions/main.js
js/dbusServices/screencast/screencastService.js
js/portalHelper/main.js
js/ui/environment.js
subprojects/extensions-app/js/main.js

index b13e52e3cfc1fbc255c880b120d2fea087f0a1ce..306fe36f5ec8ee0eaedc3c6c235ea7ca7497adf1 100644 (file)
@@ -1,5 +1,6 @@
 /* exported main */
 
+imports.gi.versions.Adw = '1';
 imports.gi.versions.Gdk = '4.0';
 imports.gi.versions.Gtk = '4.0';
 
index e91d0b60c08d8a39695c67bd530b121cb7bb2e52..1fdf5c766e84144222b5dc57f9f6c4bbb1444a37 100644 (file)
@@ -1,6 +1,7 @@
 // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
 /* exported ScreencastService */
 
+imports.gi.versions.Gst = '1.0';
 imports.gi.versions.Gtk = '4.0';
 
 const { Gio, GLib, Gst, Gtk } = imports.gi;
index bc9958e599b31f79592e838aad4248c72785ef6d..94f4b8ac60df41758dc8bd0aed300eaf7a80f7c9 100644 (file)
@@ -1,5 +1,7 @@
 /* exported main */
+imports.gi.versions.Pango = '1.0';
 imports.gi.versions.Gtk = '3.0';
+imports.gi.versions.WebKit2 = '4.0';
 
 const Format = imports.format;
 const Gettext = imports.gettext;
index 7bd848f1ab2509ba257fe0fe4e6f6a9f8261ec9c..affc2b62b8fa1d8ee0152d5236427bda9a7b3ac4 100644 (file)
@@ -3,16 +3,35 @@
 
 const Config = imports.misc.config;
 
+imports.gi.versions.AccountsService = '1.0';
+imports.gi.versions.Atk = '1.0';
+imports.gi.versions.Atspi = '2.0';
 imports.gi.versions.Clutter = Config.LIBMUTTER_API_VERSION;
+imports.gi.versions.Cogl = Config.LIBMUTTER_API_VERSION;
+imports.gi.versions.Gcr = '3';
+imports.gi.versions.Gdk = '3.0';
+imports.gi.versions.Gdm = '1.0';
+imports.gi.versions.Geoclue = '2.0';
 imports.gi.versions.Gio = '2.0';
+imports.gi.versions.GDesktopEnums = '3.0';
 imports.gi.versions.GdkPixbuf = '2.0';
 imports.gi.versions.GnomeBluetooth = '3.0';
 imports.gi.versions.GnomeDesktop = '3.0';
+imports.gi.versions.Graphene = '1.0';
 imports.gi.versions.Gtk = '3.0';
 imports.gi.versions.GWeather = '4.0';
+imports.gi.versions.IBus = '1.0';
+imports.gi.versions.Malcontent = '0';
+imports.gi.versions.NM = '1.0';
+imports.gi.versions.NMA = '1.0';
+imports.gi.versions.Pango = '1.0';
+imports.gi.versions.Polkit = '1.0';
+imports.gi.versions.PolkitAgent = '1.0';
+imports.gi.versions.Rsvg = '2.0';
 imports.gi.versions.Soup = '3.0';
 imports.gi.versions.TelepathyGLib = '0.12';
 imports.gi.versions.TelepathyLogger = '0.2';
+imports.gi.versions.UPowerGlib = '1.0';
 
 try {
     if (Config.HAVE_SOUP2)
index 361477ddd2fb26f812fd51251aa80baaf881703d..56e10769fe405ad4adfdd326557a3c09db33745e 100644 (file)
@@ -1,4 +1,5 @@
 /* exported main */
+imports.gi.versions.Adw = '1';
 imports.gi.versions.Gtk = '4.0';
 
 const Gettext = imports.gettext;